package com.juc.semaphore.semaphore10;

import java.util.concurrent.Semaphore;

public class MyServiceFair {

    /**
     * 有时候，获取许可的顺序与线程的启动顺序有关 这信号量就分公平和非公平
     * 所谓公平信号量是获得锁的顺序和线程的启动顺序有关 但不能保证100%的获取信号量
     * 仅仅概率上的保证。
     * 而非公平信号量就无关
     */
    private boolean isFair = true;

    private Semaphore semaphore =new Semaphore(1, isFair);

    public void testMethod(){
        try {
            semaphore.acquire();
            System.out.println("threadName " +Thread.currentThread().getName() );
        } catch (InterruptedException e) {
            e.printStackTrace();
        }finally {
            semaphore.release();
        }
    }

}
